package com.shadt.core.initializing;

import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;

import com.shadt.core.util.SpringUtil;
import com.shadt.pay.entity.Pay_Shadt_App;
import com.shadt.pay.wechat.entity.Pay_WeChat_App;
import com.shadt.pay.wechat.service.WeChatAppService;

/**
 * 数据初始化
 * spring 容器初始化完成后执行
 * 
 * @author SongR
 * 
 */
public class DataInitializing implements ApplicationListener<ContextRefreshedEvent> {
	Logger logger = Logger.getLogger(this.getClass());
	public void onApplicationEvent(ContextRefreshedEvent event) {
		if (event.getApplicationContext().getParent() == null) {
			logger.info("**********开始初始化数据**********\n");
			WeChatAppService weChatAppService = null;;
			try {
				logger.info("正在读取初始化数据\n");
				weChatAppService = (WeChatAppService) SpringUtil.getBean("weChatAppServiceImpl");
				if(weChatAppService.count(null)>0){
					logger.info("数据库已存在初始化数据无需再进行初始化！");
					return;
				}else{
					Pay_WeChat_App weChatApp = new Pay_WeChat_App();
					weChatApp.setWechat_app_id("wxa007553209f3c8a8");
					weChatApp.setWechat_app_key("ba5a6102bbd717828ce58412b2e516c7");
					weChatApp.setWechat_app_name("掌上浏阳");
					weChatApp.setWechat_mch_id("1315614001");
					Pay_Shadt_App shadtApp = new Pay_Shadt_App();
					shadtApp.setShadt_app_key("ba5a6102bbd717828ce58412b2e516c8");
					shadtApp.setShadt_app_id("shadt07553209f3c8a8");
					shadtApp.setShadt_app_name("三洲商城");
					shadtApp.setShadt_mch_id("16052509440");
					shadtApp.setWeChatApp(weChatApp);
					List<Pay_Shadt_App> shadtApps = new ArrayList<Pay_Shadt_App>();
					shadtApps.add(shadtApp);
					weChatApp.setShadtApps(shadtApps);
					weChatAppService.save(weChatApp);
					logger.info("已成功初始化数据！\n");
				}
			} catch (Exception e) {
				e.printStackTrace();
				logger.error("数据初始化失败！请手动添加初始化数据！\n"+e);
			} finally{
				logger.info("**********初始化数据结束**********\n");
			}
		}
	}

}
